laws of logic discrete mathematics